DJI SOS — 授權、致謝與原始碼
===================

DJI SOS: Copyright (C) 2026 Hansley. GPL-3.0-or-later.
本軟體為自由軟體，可依 GNU GPL 第 3 版或更新版本的條款重新散布與修改，
不提供任何擔保。授權全文請見 LICENSE；詳細說明請見 LICENSING.en.md（英文）。

完整原始碼可透過「輔助說明」選單的「顯示完整原始碼…」離線查看。ZIP 檔案
位於應用程式資源中的 SourceCode 目錄，包含可修改的 Swift 程式碼、指令稿、
與建置精確對應的第三方原始碼、各項授權及建置配方。請參閱壓縮檔內的
REBUILD.en.md（英文）。libvmaf 壓縮檔已移除 9 個舊的、未使用的預先編譯
MATLAB 模組；原始碼、授權及建置指令稿均予以保留。此處理方式與上游
原始壓縮檔的檢查碼皆有文件記錄。

DJI SOS 在本機處理影片。各工具以本機程序執行；設定檔目錄也來自 djifix 的
陣列，由 Swift 引擎直接使用。修復影片不需要網路連線、Homebrew 或 Python。

djifix
------
Copyright (c) 2014–2026 Live Networks, Inc.
版本 2026-10-31; GPL-3.0-or-later.
官方專案: https://djifix.live555.com/
完整且未修改的 C 原始碼: ThirdParty/djifix/djifix.c.
授權: ThirdParty/djifix/COPYING.GPLv3.
Resources/Profiles 中的設定檔衍生自此 GPLv3+ 原始碼。
擷取過程與排除項目請見 Scripts/generate_profiles.py。
編譯: Apple clang, -O2 -arch arm64 -mmacosx-version-min=15.0.

untrunc
-------
Copyright 2010 Federico Ponchio 及貢獻者; GPL-2.0-or-later.
原始專案: https://github.com/ponchio/untrunc
由 anthwlock 維護的分支: https://github.com/anthwlock/untrunc
提交: 9d86ec9ef2ffed1bf8131abe80742c0574db52b6
完整原始碼: ThirdParty/untrunc/untrunc-source.tar.gz.
包含衍生自 AtomicParsley 的程式碼：Copyright 2006 puck_lock，
GPL-2.0-or-later（原始碼壓縮檔中的 src/AP_AtomDefinitions.h）。
詳細聲明保留於各個原始碼檔案的標頭。
本機編譯：Apple clang++、C++17、arm64、macOS 15.0，
使用 FFmpeg 8.1。指令與輸出請見 ThirdParty/tool-build-commands.json
及 ThirdParty/tool-build.log。上游原始碼未經修改。

FFmpeg 與 ffprobe
----------------
FFmpeg 開發者及貢獻者。 https://ffmpeg.org/
版本 8.1，Homebrew 套件 8.1_1，arm64；此建置啟用了
--enable-gpl --enable-version3，適用 GPL-3.0-or-later。
精確對應的原始碼為 ffmpeg-8.1.tar.xz。4 份 GPL/LGPL 文字、LICENSE.md、
建置配方、建置記錄及 SPDX 清單位於 ThirdParty/libraries/ffmpeg-8.1_1/。
實際使用的 configure 選項請見 ThirdParty/ToolsSmokeTests.json。
本軟體部分以 Independent JPEG Group 的工作成果為基礎。
This software is based in part on the work of the Independent JPEG Group.

重新散布的非系統函式庫
-----------
元件              版本      上游授權
dav1d             1.5.3     BSD-2-Clause
LAME              3.100     LGPL-2.0-or-later
libvmaf           3.1.0     BSD-2-Clause-Patent
libvpx            1.16.0    BSD-3-Clause
OpenSSL           3.6.2     Apache-2.0
Opus              1.6.1     BSD-3-Clause
SVT-AV1           4.1.0     BSD-3-Clause 及部分 BSD-2-Clause
x264              r3222     GPL-2.0-or-later
x265              4.2       GPL-2.0-or-later

ThirdParty/libraries/ 中的每個目錄都保留原始聲明、著作權聲明、授權、
可取得的作者名單、精確對應的 Homebrew 建置配方、建置記錄及 SPDX 清單。
原始碼 ZIP 中的完整壓縮檔也保留檔案及子專案內部的授權。Homebrew 與其
建置配方採用 BSD-2-Clause；授權保留於 ThirdParty/Homebrew-LICENSE.txt。
這些是建置配方，使用者執行應用程式不需要安裝 Homebrew。

原始碼與轉換處理
--------
ZIP 中的 ThirdParty/CorrespondingSources/manifest.json 將各份原始碼與其
版本、URL、SHA-256 檢查碼及二進位檔案相互對應。9 個發行版本的上游
壓縮檔已與所保留建置配方中的 SHA-256 檢查碼核對。x264 的精確 Git 提交
與必要的版本資訊均予以保留，也包含 djifix 與 untrunc。libvmaf 壓縮檔是
上述已移除 9 個未使用 MATLAB 模組的衍生版本，此處理已有文件說明；
其中繼資料區分了上游原始壓縮檔的檢查碼與移除模組後的壓縮檔檢查碼。

LAME 建置配方從 include/libmp3lame.sym 移除了 lame_init_old；此修改記錄於
REBUILD-DEPENDENCIES.md。保留的其他建置配方不會對這些發行版本的
程式碼套用修補程式。

package_tools.py 複製二進位檔案，將非系統路徑替換為 @loader_path，
移除建置電腦的 rpaths，並對副本進行臨時簽署（ad hoc）。
Scripts/notarize_release.py 為直接散布加入附有時間戳記的 Developer ID 簽署。
build.sh 將程式碼放入 Contents/Helpers 與 Contents/Frameworks，
將設定檔目錄放入 Contents/Resources/Profiles。這些 Mach-O 修改是對 Homebrew
二進位檔案進行的唯一額外轉換，不會修改系統中已安裝的軟體。
Resources/ToolsManifest.json 記錄相依關係圖、原始與隨附版本的檢查碼、
架構與目標作業系統。

隨附內容包含 21 個 Mach-O 檔案，共 39,406,880 位元組。
Apple 的函式庫與框架仍由 macOS 提供。

此版本適用於 Apple Silicon（arm64），需要 macOS 15.0 或更新版本。
此版本的元件已使用附有安全時間戳記的 Developer ID 簽署。
最終公證狀態記錄於散布目錄。

DJI SOS 是獨立的應用程式，不代表 DJI。
散布的原始碼中不包含任何個人影片檔案。
